package com.hzsparrow.ai.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzsparrow.ai.entity.ModelConfig;

import java.util.List;

/**
 * 模型配置服务接口
 */
public interface ModelConfigService extends IService<ModelConfig> {
    
    /**
     * 创建模型配置
     *
     * @param modelConfig 模型配置信息
     * @return 创建的模型配置
     */
    ModelConfig createModelConfig(ModelConfig modelConfig);
    
    /**
     * 获取模型配置详情
     *
     * @param id 模型配置ID
     * @return 模型配置信息
     */
    ModelConfig getModelConfig(Long id);
    
    /**
     * 更新模型配置
     *
     * @param modelConfig 模型配置信息
     * @return 更新后的模型配置
     */
    ModelConfig updateModelConfig(ModelConfig modelConfig);
    
    /**
     * 删除模型配置
     *
     * @param id 模型配置ID
     * @return 是否删除成功
     */
    boolean deleteModelConfig(Long id);
    
    /**
     * 获取所有启用的模型配置
     *
     * @return 模型配置列表
     */
    List<ModelConfig> getAllEnabledModels();
    
    /**
     * 根据模型类型获取模型配置
     *
     * @param modelType 模型类型 (chat, embedding)
     * @return 模型配置列表
     */
    List<ModelConfig> getModelsByType(String modelType);
    
    /**
     * 根据模型分类获取模型配置
     *
     * @param category 模型分类 (openai, ollama, deepseek)
     * @return 模型配置列表
     */
    List<ModelConfig> getModelsByCategory(String category);
    
    /**
     * 分页查询模型配置列表
     *
     * @param page 页码
     * @param size 每页大小
     * @param category 模型分类（可选）
     * @param modelType 模型类型（可选）
     * @return 模型配置分页列表
     */
    Page<ModelConfig> listModelConfigs(int page, int size, String category, String modelType);
} 